note
	description: "Objects that ..."
	author: ""
	date: "$Date$"
	revision: "$Revision$"

class
	MIRAGE


create
	make

feature

	make
		--Constructor de la clase mirage
		do
			create mc.crear_mc
		end
feature

	Atacar_Objetivo (objetivo: STRING)
		--Prepara un misil, lo apunta y lo lanza.
		local
			i: INTEGER
			fallas: INTEGER
			primerFalla:BOOLEAN
		do
			if(not primerFalla)
				then
					i := 0
					mc.preparar_misil
					print ("Se preparo el misil %N")
					i := 1
					mc.apuntar_misil (objetivo)
					print ("Se apunto hacia ")
					print (objetivo)
					print(" %N")
					i := 2
					mc.lanzar_misil
					print ("Se lanzo el misil %N")
					print ("Se pudo atacar a ")
					print (objetivo)
					print ("%N")
				end

			rescue
				if (i = 1) then
					print ("No se pudo apuntar el misil %N")
					fallas := fallas + 1
					if (fallas < 5)
						then
							retry
						end
					print ("Dado que no se pudo apuntar el misil luego de 5 reintentos, la operacion falla %N")
				else
					if (i = 0)
						then
							print ("No se pudo preparar el misil. La operacion finalizara sin fallar %N")
							primerFalla:=true
							retry
				    	else
				    		print ("No se pudo lanzar el misil, la operacion falla %N")
						end
				end
		end

feature

	getMc:MC72
		--Getter de mc
		do
			Result:=mc
		end


feature {NONE}

	mc: MC72


end -- class MIRAGE

